Method, system, and computer program product for providing location based services

ABSTRACT

Methods, systems, and computer program products for providing location based services are provided. Embodiments may include storing locations for a plurality of users of a telecommunication environment and contact lists of associated users for the plurality of users. Embodiments may also include providing the locations of the associated users for a first user based on a request from the first user. The request may further include providing locations for associated users who are located within an area of interest. The area of interest may be defined by a particular distance from the first user or by a point of interest of the first user. The locations of the users may be determined based on the locations of communication devices of the users including an identified receiving communication device for each user.

BACKGROUND OF THE INVENTION

People are becoming more and more interconnected through multiplecommunication devices and networks. For example, a person or user mayhave a cell phone, home phone, work phone, personal computer, workcomputer and other communication devices. The multiple communicationdevices may make it difficult to effectively manage all the messages orcalls going to the multiple communication devices. Also, when someone istrying to contact another person, it may be difficult to determine whatmultiple communication device of the person should be used.

Moreover, as the communication networks become more interconnected andthe number of users increases, the operators and providers of thecommunication networks face ever increasing amount of information andsignals to track and process, which adds to complexity and may lead tolonger processing times.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)

FIG. 1 is a simplified block diagram of a telecommunication environmentconsistent with exemplary embodiments;

FIG. 2 is another simplified block diagram of at least a portion of atelecommunication environment consistent with exemplary embodiments;

FIG. 3 is a flow chart illustration of a method according to anexemplary embodiment;

FIG. 4 is a flow chart illustration of a method according to anotherexemplary embodiment; and

FIG. 5 is a simplified block diagram of a system according to yetanother exemplary embodiment.

DETAILED DESCRIPTION

Exemplary embodiments are described hereinafter with reference to theaccompanying drawings, in which exemplary embodiments and examples areshown. Like numbers refer to like elements throughout.

Embodiments relate to providing location based services to one or moreusers of communication devices. Each communication device is configuredto operate within a telecommunication environment 100, such as the oneillustrated in FIG. 1, in which the communications devices may beselectively and communicatively coupled to one another for receiving andtransmitting information. The information may be in a variety of formsincluding voice signals, text messages, data files, and programminginstructions. The communication devices may be communicatively coupledto each other through one or more communication networks. For example,the communication devices may include one or more mobile devices 10,such as cellular phones, personal digital assistants (“PDA”), pagers, orany other wireless personal communication system (“PCS”) operable withina wireless communication network 104. The wireless communication networkmay based on a variety of technologies and platforms including SS-7based networks, cellular or third-generation cellular network, or as amore specific example Verizon's Wireless Network. As another example thecommunication devices may include one or more computing devices 12, suchas desktops and laptops, that are within or directly connected to a datanetwork 202, such as a Wide Area Network (“WAN”), Local Area Network(“LAN”), an intranet and/or the Internet, and having variouscommunication programming applications including email, Internetbrowser, instant or text messaging, or voice over IP (VOIP)applications. In yet another example, the communication devices mayinclude one or more telephone devices 11 connected to the PublicSwitched Telephone Network (“PSTN”) 200 or a private branch exchange(“PBX”). Moreover, a communication device may be part of a hybridapparatus (not illustrated) that is configured to work within more thanone type of communication networks. For example, the communicationdevice may be telephone device configured to work both within a wirelessnetwork and landline or wired network.

As illustrated in FIG. 1, the telecommunications environment 100 mayalso include at least one service center 106. The service center 106 mayprovide a platform for managing information or communications betweenthe differing networks 104, 200, 202 and between communications devices10, 11, 12 within the same network or differing networks. The servicecenter 106 may also provide gateway functions, such as code and protocolconversions, to transfer information or communications between thenetworks 104, 200, 202. The service center 106 may be implemented usinga combination of hardware, software, and/or firmware. For example, theservice center 106 may be implemented using a plurality of generalpurpose computers or servers. Although the service center 106 is shownwith direct connections to the networks 104, 200, 202 any number andtype of network elements may be interposed between the service center106 and any one or all of the networks. Moreover, it is understood thatthe service center 106 may be connected to different, additional, orless communication networks than what is illustrated in FIG. 1.

The service center 106 may also provide account management functions forthe plurality of users of the communication devices 10, 11, 12 operatingwithin the telecommunications environment 100. For example, the servicecenter 106 may include at least a first computing device, referred toherein as an account information server 120. The account informationserver 120 may store accounts for one or more of the users of thecommunication devices 10, 11, 12. The account information server 120 mayinclude or otherwise be in communication with at least one storageelement for storing the information and a processing element forprocessing the information, including in response to a request orinstructions received from users. In general, an account includesinformation and/or instructions pertaining to a particular user. Theservice center may further include a second computing device, referredto herein as a single sign-on server or SSO server 122. The SSO servermay be configured to authenticate and approve access to informationstored within the account information server 120 or other informationstored in additional servers of the service center 106. In particular,the user may access his account on the account information server 120 bylogging on through the SSO server 122 by using one of the communicationdevices 10, 11, 12. For example, the user may be able to log on througha web page on a computing device 12.

Again as an example, a user may use more than one communication device10, 11, 12 and may prefer a particular communication device depending onthe circumstances. The user may have a cell phone 10, a home phone 11, awork phone (not illustrated), and a computer 12 at work. The user maywant to have calls to his home phone 11 forwarded to his cell phone 10when he is away from his house and/or to have his calls to his cellphone 10 forwarded to his home phone 11 when he is at home. Thecommunication device to which the user wants his calls forwarded isreferred to as “the receiving communication device.” For this example,when the user is away from home, the cell phone is the receivingcommunication device and the home phone is a forwarding communicationdevice; and when the user is home, the home phone is the receivingcommunication device and the cell phone is a forwarding communicationdevice. These forwarding instructions may be stored as part of theuser's account at the account information server 120. The forwardinginstructions may include a default receiving communication device inabsence to specific instructions stating otherwise. The user mayestablish forwarding instructions to include times or circumstances toforward calls or may access his account through the SSO server 122 tochange the forwarding instructions at the time he wants the forwardinginstructions to change.

Other information stored within or otherwise accessible by the accountinformation server 120 may be one or more address books or contact listsfor the user. A contact list stored within the account informationserver may be copy of a contact list stored within and/or created at oneof the communication devices. A contact list is a list of one or moreother users that the first user has an association with. Therefore theusers listed in a contact list may be considered “associated users” ofthe first user. The contact list may be created by the first userthrough one of the communication devices. The contact list may also becreated at least partially by the account information server 120 orother devices of the service center 106. For example, a processorelement of the account information server 120 may create a contact listthat includes the other users identified through call histories of thecommunication devices 10, 11, 12 of the first user that are storedwithin the account information server 120 or the processor element maycreate the contact list in response to a request to create a contactlist based on one or more common attributes of the various users'accounts stored at the account information server 120. A user may havemore than one contact list stored at the account server user 120. Forexample, a first user may have a first contact list of his friends, asecond contact list of business associates, a third contact list createdby a call history of each of the first user's communication devices andso on.

As yet another example of information forming part of an account and asmentioned above, an account information server 120 may store callhistories or caller logs regarding each of the communication devices 10,11, 12 of the user such that the user may review a history of incoming,outgoing, and missed calls to one of the his communication devices 10,11, 12.

The account information server 120 may also receive and store a locationfor each of the plurality of users. More specifically, the accountinformation server 120 may receive and store a location for one or moreof the communication devices 10, 11, 12 of the users. For example, theaccount information server 120 may store a location for eachcommunication device that has a substantially permanent or fixedlocation, such as a home phone. As a more specific example, the accountinformation server 120 may store a street address for a home phone. Insome embodiments, the user may provide or update the street address forone or more of the communication devices. In other communicationdevices, especially mobile devices, such as cell phones and PDAs, thelocation of the communication device may change on a regular basis. Theaccount information server 120 may receive updates regarding thelocation of a communication device from the communication device and/ora location server in communication with the communication device. Forexample, the communication device may be a cellular phone or othermobile device that includes a locating sensor. Although the type oflocating sensor may vary, one type of locating sensor may be configuredto operate within a global positing satellite (“GPS”) network. Anexample of such a locating sensor and GPS network is the gpsOne® sensorwhich is based upon Assisted-Global Positioning System technology(“AGPS”), and on cell network-based trilateration, which may utilize atechnology referred to as advanced forward link trilateration (“AFLT”).The cellular phone of this example may be further configured to sendlocation updates to the service center 106. The updates may be based ona time interval or event based such as receiving a request for alocation update from the service center 106.

As stated above, a user may have more than one communication device 10,11, 12 and thus the account information server 120 may store more thanone location for the multiple communication devices 10, 11, 12 of aparticular user. In order to provide a location for the user, theaccount information server 120 may determine the location of the user tobe the same location as the communication device 10, 11, 12 that isconsidered the receiving communication device according to the callforwarding instructions. Therefore, in the example above, when the useris home the location of the user is consider the same location as thehome phone and when the user is away from home the location isconsidered the location of the cell phone. As stated above, the user mayhave a default receiving communication device, which may also providefor a default location for the user.

FIG. 2 illustrates an exemplary embodiment of a service center 106 and aplurality of communication devices 10 of a wireless communicationnetwork 104. The service center 106 may include a gateway 108, one ormore wireless servers 110, and one or more backend servers 112.

The gateway108 may provide protocol translating functions and may beconfigured to receive and send instructions and signals for a variety ofprotocols and platforms. For example, the gateway 108 may be configuredto interface between the other devices and elements of the servicecenter and the communication devices operating with various applicationplatforms or protocols including binary runtime environment for wireless(“Brew”) protocol, wireless application protocol (“WAP”), and javaplatform, micro edition (“JavaME” or “J2ME”) protocol. Although FIG. 2illustrates one gateway 108, the service center 106 may include morethan one gateway for different types of communication devices.

The wireless servers 110 may include a proxy server 116 and a map server114. The proxy server 116 may provide cached information from theaccount information server 120 and/or the proxy server 116 may modifycommunications and requests between the account information server 120and the communication devices 10. The map server 114 may include orotherwise be in communication with at least one storage element formaintaining mapping data such as street maps of cities and/or theinterstate roadway system and a processing element for developing andsending maps to one or more communication devices based on requests fromone or more communication devices 10 or other elements or devices of theservice center 106. The processing element may be configured to developand/or provide the maps in a particular format for the intendedcommunication device.

The backend servers 112 may include the account information server 120,the SSO server 122, and a location based content server 118. Thelocation based content server 118 may include at least a storage elementand a processing element for storing and processing the informationwithin the location based content server 118. The location based contentserver 118 may store information regarding addresses and/or phonenumbers to businesses, residences, and other establishments or points ofinterest. For example, the location based server 118 may containinformation found in yellow and white pages or other phone directories.

According to embodiments, the service center 106 may provide locationbased services to one or more users within the telecommunicationenvironment 100. In general, a location based service includes anyservice that sends or provides information to a communication deviceregarding or depending upon the location of the user or other users,communication devices, or points of interest. Location based service mayalso include sending information regarding the relative locations ordirections between any two of users, communication devices, and pointsof interest.

FIG. 3 illustrates an example of a method for providing a location basedservice. For example, a first user of a first communication device makesa phone call to a second communication device of a second user 310.Before or while the call is being connected, the first communicationdevice determines its location 300 and sends the location of the firstcommunication device to the account information server. Depending on thecall forwarding instructions 320, the phone call is forwarded to thereceiving communication device 330 of the second user. In this example,a third communication device of the second user is the receivingcommunication device as a result of the call forwarding instructionsprovided by the second user and thus the third communication devicereceives the call even though the first user made the call to the secondcommunication device. When the second user receives the call, the seconduser may receive the location of the first user based on the location ofthe first communication device 340. Moreover, the second user mayrequest and receive from the service center driving directions from thelocation of the second user to the location of the first user or a mapof the location of the first user or information regarding points ofinterest relative to either the location of the first user or of thesecond user. Although not illustrated, the first user may also be ableto receive the location of the second user including maps and drivingdirections to the second user. Therefore the method may includedetermining the location of the second user. For example, if thereceiving communication device of the second user is a home phone thenthe location may be stored or otherwise accessible to the accountinformation server. If the receiving communication device of the seconduser is a cellular phone, a locating sensor of the cellular phone maysend the location to the account information server. Also, according tothis example, even though the first user called the second communicationdevice of the second user, the location of the second user is determinedthrough the location of the third communication device, i.e. thereceiving communication device.

FIG. 4 is another example of a method for providing location basedservice. The method includes providing access to information regarding aplurality of users within a telecommunication environment 400. Asdescribed above, the information may include at least a first contactlist for at least a first user. Each contact list defines one or moreassociated users of the first user. The method may also includedetermining a location for each of the plurality of users 410. Thelocation may be determined through stored locations for communicationdevices and/or through updated locations sent by the communicationdevices. In terms of the determination being based on stored locationsfor communication devices, the location of the user may moreparticularly be based on the location of the communication device thatis identified as the receiving communication device for that user. Themethod may also include receiving a request from the first user for thelocation of one or more of the associated users of the first contactlist 420. For example, the first user may request the locations througha first communication device such as a cellular phone. And as anotherexample, the first communication device may have a command optionthrough a software application stored within the communication device tolocate one or more of the associated users on a contact list. Forexample, the application of the communication device may provide list ofcommands on the display of the communication device and one of thecommands may be to locate a user or all the users of a contact list. Themethod may further include providing a location for each of the one ormore of the associated users of the first contact list according to therequest from the first user 430. For example, the service center maysend the locations to the first communication device. The locations maybe provided as text, e.g., the addresses may be listed across a displayof the first communication device and/or the locations may be overlaidon a map viewable on a display of the first communication device.

As another example, a first user may have a cellular phone and a storedcontact list of a second user, a third user, and a fourth user. Thefirst user may request the locations of the second, third, and fourthusers through the cellular phone of the first user. The location of eachof the second, third, and fourth users may be determined by a stored orreceived location of the identified receiving communication device foreach of the second, third, and fourth users. After determining thelocations for each of the second, third, and fourth users, the locationsare sent to the cellular phone of the first user.

The request from the first user for a location of the one or moreassociated users may include a request for the location for only theassociated users of the contact list that are within an area of interestand not for the associated users of the contact list outside the area ofinterest. The area of interest may be defined by in relation to thelocation of the first user or to a point of interest. For example, thefirst user may request the location of each of the associated users whoare within a 10 miles radius of the first user or within the same cityas the first user. Or the first user may request the location of each ofthe associated users within a particular area relative to a point ofinterest.

In addition to providing locations of the associated users, the systemand method may further provide directions, such as driving directions,to the first user in order to help the first user find one or more ofthe associated users or conduct other location based searches as furtherdisclosed in U.S. application Ser. No. (Attorney Docket No. 20060331),entitled “METHODS AND APPARATUS FOR PROVIDING A LOCATION BASED SEARCH”,assigned to the assignee of the present application and filed on thesame day as the present application, which is hereby incorporated in itsentirety.

Furthermore the system and method may also analyze the locationsassociated with users and generate useful statistical information. Forexample, by examining the location changes, a user's (or a group ofusers') traveling speed on a highway or a street can be determined andbe used to identify traffic jams. The information can in turn be sharedwith the entire user community to avoid jams in the driving directions.Yet in another example these statistical traveling speed information canbe integrated into the shortest or quickest route computations toprovide users with the best real time traveling route.

It is understood that the operations described for the illustratedmethods of FIGS. 3 and 4 may be performed through hardware, software, orcombination thereof. Therefore embodiments may take the form of hardwaresystems and/or apparatuses, software, or combinations thereof. As anexample, embodiments may include a computer program product stored on acomputer-readable storage medium (i.e. software) comprising of one ormore executable portions for performing the operations described herein.As another example, one or more of the devices and/or systems of theservice center may perform one or more of the operations.

As a more specific example and as illustrated in FIG. 5, an embodimentmay include a system 500 having at least one storage element 510 formaintaining information regarding a plurality of users within atelecommunication environment, including at least a first contact listfor at least a first user, wherein the first contact list defines one ormore associated users of the first user; a receiving element 520configured to receive a request from a communication device of the firstuser for a location of one or more of the associated users of the firstuser; a processing element 530 for determining the location of the oneor more of the associated users of the first user according to therequest with the determination being based at least partially upon theinformation maintained in the storage element; and a transmittingelement 540 for sending the location of the one or more associated usersto the first user.

The processing element 510 may be embodied in many ways. For example,the processing element 510 may be embodied as a processor, acoprocessor, a controller or various other processing means or devicesincluding integrated circuits such as, for example, an applicationspecific integrated circuit (“ASIC”). The storage element or elements510 may be various memory devices including volatile and non-volatilememory devices. The at least one storage element may be configured tostore information, data, applications, instructions or the like forenabling the system 500 to carry out various functions in accordancewith exemplary embodiments. For example, the storage element 510 couldbe configured to buffer input data for processing by the processingelement 520. The receiving element 520 and the transmitting element 540may be embodied as any device or means embodied in either hardware,software, or a combination of hardware and software that is configuredto receive and/or transmit data from/to the processing element 510.

The at least one storage element may also maintain mapping information.The processing element may also determine driving directions to at leastone of the associated users from the location of the first users. Andthe transmitting elements may send the driving directions to thecommunication device of the first user.

In another embodiment, one or more of the plurality of users may haveone or more communication devices and the at least one storage elementmay maintain instructions from the one or more users defining areceiving communication device out of the one or more communicationdevices of each of the users. And the location for each of the one ormore users may be based on the receiving communication device, such as afixed location for a wired communication device and a locationdetermined dynamically such as a GPS sensor for a wireless communicationdevice. In this respect, at least one of the receiving communicationdevices of the plurality of users may be a mobile device having alocating sensor and the receiving element may receive updates from themobile device regarding the location of the mobile device.

In yet another embodiment, the system may comprise an authenticationelement for allowing at least partial access for the first user toinformation maintained in the at least one storage element. Theauthentication element may be embodied as any device or means embodiedin either hardware, software, or a combination of hardware and softwarethat is configured to determine authorization to the information storedwithin the system. As an example, the authentication element may be aSSO server.

In the preceding specification, various embodiments of the claimedinvention have been described. It will, however, be evident that variousmodifications and changes may be made thereunto without departing fromthe broader spirit and scope of the invention as set forth in the claimsthat follow. The specification and drawings are accordingly to beregarded in an illustrative rather than restrictive sense.

1. A method comprising: providing access to information regarding aplurality of users within a telecommunication environment, includingproviding access to at least a first contact list for at least a firstuser, wherein the first contact list defines one or more associatedusers of the first user; determining a location for each of theassociated users of the first user; receiving a request from the firstuser for the location of at least one of the associated users of thefirst contact list; and providing a location for the at least one of theassociated users of the first contact list according to the request fromthe first user.
 2. The method of claim 1, wherein receiving a requestfrom the first user for a location for each of the associated usersfurther includes receiving a request for a location for associated usersof the contact list that are within an area of interest.
 3. The methodof claim 2, wherein the area of interest is defined in relation to thelocation of the first user.
 4. The method of claim 2, wherein the areaof interest is defined in relation to a point of interest.
 5. The methodof claim 1 further comprising providing directions to the first user toa location of at least one of the associated users of the first contactlist.
 6. The method of claim 1, wherein providing access to informationregarding the plurality of users further includes identifying areceiving communication device for each of the plurality of users andwherein determining a location for each of the plurality of users is atleast partially based on a location of the receiving communicationdevice.
 7. A system comprising: at least one storage element formaintaining information regarding a plurality of users within atelecommunication environment, including at least a first contact listfor at least a first user, wherein the first contact list defines one ormore associated users of the first user; a receiving element configuredto receive a request from a communication device of the first user for alocation of at least one of the associated users of the first user; aprocessing element for determining the location for the at least one ofassociated users of the first user according to the request, and whereinthe determination is based at least partially through the informationmaintained in the storage element; and a transmitting element forsending the location for the at least one of the associated users of thefirst user according to the request.
 8. The system of claim 7, whereinthe receiving element is further configured to receive a request for alocation for associated users of the first user within an area ofinterest.
 9. The system of claim 8, wherein the area of interest isdefined in relation to the location of the first user.
 10. The system ofclaim 8, wherein the area of interest is defined in relation to a pointof interest.
 11. The system of claim 7, wherein the at least one storageelement is configured to maintain mapping information, the processingelement is configured to determine driving directions to at least one ofthe associated users from the location of the first user, and thetransmitting element is configured to send the driving directions to thecommunication device of the first user.
 12. The system of claim 7,wherein one or more users have one or more communication devices andwherein the at least one storage element maintains instructions from theone or more users defining a receiving communication device out of theone or more communication devices of each of the users and wherein theprocessing element is configured to determine the location for each ofusers at least partially based on a location of the receivingcommunication device for the user.
 13. The system of claim 12, whereinat least one of the receiving communication devices of the plurality ofusers is a mobile device having a locating sensor and the receivingelement is configured to receive updates from the mobile deviceregarding the location of the mobile device.
 14. The system of claim 12further comprising an authentication element for allowing at leastpartial access for the first user to information maintained in the atleast one storage element.
 15. A computer program product comprising acomputer-readable storage medium having computer-readable program codeportions stored therein, the computer-readable program code portionscomprising: a first executable portion for accessing informationregarding a plurality of users within a telecommunication environment,including accessing at least a first contact list for at least a firstuser, wherein the first contact list defines one or more associatedusers of the first user; a second executable portion for determining alocation of at least one of the plurality of users; a third executableportion for receiving a request from the first user for the location forthe at least one of the associated users of the first contact list; anda fourth executable portion for providing a location for the at leastone of the associated users of the first contact list according to therequest from the first user.
 16. The computer program product accordingto claim 15, wherein the third executable portion includes instructionsfor receiving a request for a location for associated users of the firstcontact list that are within an area of interest.
 17. The computerprogram product according to claim 16, wherein the area of interest isdefined in relation to the location of the first user.
 18. The computerprogram product according to claim 16, wherein the area of interest isdefined in relation to a point of interest.
 19. The computer programproduct according to claim 15 further comprising a fifth executableportion for providing directions to the first user to a location of atleast one of the associated users of the first contact list.
 20. Thecomputer program product according to claim 15, wherein the firstexecutable portion includes instructions for accessing informationidentifying a receiving communication device for each of the pluralityof users and the second executable portion includes instructions fordetermining a location for each user at least partially based on thereceiving communication device for the user.